4. Disk Partitioning

Windows 为什么会有分区这个概念? - Belleve 的回答 - 知乎
MBR与GPT - 知乎

现在搜索"可不可以不分区"会得到可以不用分区的回答,但这个答案其实是在回答"可不可以不分很多区",的确现在硬件发展 UEFI 和 GPT(GUID partition table) 分区表类型普及,不会因为磁盘容量过大而不得不分区,但是日常使用中磁盘还是必须分区。

回忆 Windows 的重装流程,首先使用 DiskGenius 删除磁盘所有分区,硬盘变成空闲状态也就是未分配状态,接下来的步骤就是重新分区,可以分很多区也可以只分一个区,但在装系统前都要进行这步分区操作。

对于 Linux,我第一反应是 Linux 有分区吗?有,Linux 中使用命令 df -h 可以看到类似

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G   10G  8.1G  55% /
/dev/sdb1        50G   20G   28G  42% /mnt/data

sda1 就是物理磁盘 a 的第一个分区,而且大概率磁盘a只分了一个区

为什么磁盘一定要分区才能使用?

根据 Wiki 的资料,1983 年的 DOS 2.0 最早用 partition 描述 physical segments。老狼的说法 MBR 也是在这个操作系统中提出的。所以 MBR 和 partition 都是微软的东西。

Linux 这边,按照鸟哥的说法

早期的 Linux 系统为了兼容 Windows 的磁盘,因此使用的是支持Windows 的 MBR( Master Boot Record,主引导记录)的方式来处理启动引导程序与分区表。

Linux 内核诞生于 1991 年,远晚于 DOS 系统,所以 Linux 使用 MBR 和 partition 大概就是兼容的力量。

分区的优点一搜能找到很多,比如性能上将读写速度更快的磁盘外圈(包括 ZBR)分配给系统盘、用分区限定磁头查找特定文件的摆动幅度,还有管理、维护等等的优点,但这些我其实感觉都有些马后炮,并非当初设计的直接目的。

单从现在的分区确实没法分析个所以然,跳回到 MBR(鸟哥口中 MBR 指扇区的前 446 字节,但 Wiki 指整个扇区的 512 字节)的那个年代

DOS 1.x 扁平目录结构,有盘符系统,每个盘内文件偏平
DOS 2.0 加入了目录系统,使用 FAT12 文件系统,最多支持 32MB 大小的文件,而当时的机械硬盘比如 1980 年的 IBM 3380 容量已经达到了 2.52GB,当时的环境不得不分区,每个分区都有独立的文件系统因此不受单个文件系统容量上限的限制,而硬盘发展到 MBR 的 2TB 上限就是后话了。

综上,分区出现是因为硬盘容量的推动,后续的发展也基于分区概念了,比如 GPT 也保留了 MBR 兼容区块,一项没有坏处的规范没必要大改,所以如今使用固态硬盘不想分多个区也得先分一个区。

MBR

主分区
(Master Boot Record, 主引导记录)

GPT

分区并没有对硬盘做什么,只是在分区表中记录了分区的起始与结束柱面号码